package com.samphanie.common.config;

import com.samphanie.common.properties.FileProperties;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.unit.DataSize;

import javax.servlet.MultipartConfigElement;
import java.io.File;

@Configuration
@RequiredArgsConstructor
public class MultipartConfig {

    private final FileProperties fileProperties;

    @Bean
    MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();

        // 文件最大
        factory.setMaxFileSize(DataSize.ofMegabytes(fileProperties.getMaxSize()));
        // 总上传数据大小
        factory.setMaxRequestSize(DataSize.ofMegabytes(fileProperties.getMaxAllSize()));

        // 文件上传临时路径
        //        String location = System.getProperty("user.home") + "/.yueshumei/file/tmp";
        //        File tmpFile = new File(location);
        //        if (!tmpFile.exists()) {
        //            tmpFile.mkdirs();
        //        }
        //        factory.setLocation(location);
        return factory.createMultipartConfig();
    }
}
